package com.example.waterdispenserm2.mo.inductionmain;

import java.util.Arrays;

public class InductionCookerProtocol {
    // 识别码
    private static final byte IDENTIFIER = (byte) 0xA5;

    // 构建显示数据
    public static byte[] buildDisplayData(int digit1, int digit2, int digit3, int digit4, int leds) {
        byte[] data = new byte[7];
        data[0] = IDENTIFIER;
        data[1] = (byte) digit1; // 千位
        data[2] = (byte) digit2; // 百位
        data[3] = (byte) digit3; // 十位
        data[4] = (byte) digit4; // 个位
        data[5] = (byte) leds;   // LED状态（烧水时bit2=1）

        // 计算校验和
        data[6] = calculateChecksum(Arrays.copyOfRange(data, 0, 6));
        return data;
    }

    // 计算校验和
    private static byte calculateChecksum(byte[] data) {
        byte sum = 0;
        for (byte b : data) {
            sum += b;
        }
        return sum;
    }

    // 解析按键数据
    public static int parseKeyData(byte[] data) {
        if (data.length < 2) return 0;
        return data[1] & 0xFF; // 返回键值
    }
}
